package main

import "fmt"

// https://golang-minibear2333.github.io/1.base/1-7-range%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/

// range array
func demo1() {
	nums := []int{1, 2, 3}
	for k, v := range nums {
		fmt.Printf("key: %v , value: %v \n", k, v)
	}
}

// range STRING
func demo2() {
	for k, v := range "hello" {
		// 注意这里单个字符输出的是ASCII码，
		// 用 %c 代表输出字符
		fmt.Printf("key: %v , value： %c \n", k, v)
	}
}

// channel
func channel() {
	ch := make(chan int, 10)
	ch <- 11
	ch <- 12
	ch <- 13
	ch <- 14
	close(ch)

	for x := range ch {
		fmt.Println(x)
	}
}

func array() {
	tmp := []struct {
		int
		string
	}{
		{1, "cm2022"},
		{2, "cm2023"},
	}
	for k, v := range tmp {
		fmt.Printf(" k:%v, v: %v \n ", k, v)
	}
}

func main() {
	array()
}
